#pragma  once
#include "wnd.h"

class HighlithtPainter;
class Highlight;
class Highlighter;

class HighlithtPainter{
public:
	void Paint(HWND hWnd, int p0, int p1, Rect rect);
};

class Highlight{
public:
	int GetStartOffset();
	int GetEndOffset();
	shared_ptr<HighlithtPainter> GetPainter();
};

class Highlighter{
public:
	void Install(HWND hWnd);
	void UnInstall(HWND hWnd);
	void Paint(HDC dc);
	void AddHighlight(int p0, int p1, HighlithtPainter hlPainter);
	vector<Highlight> GetHighlights();

};